<?php

class RegisterForm extends sfGuardRegisterForm {

    public function setup() {
        sfValidatorBase::setDefaultMessage('required', 'Pole wymagane');
        parent::setup();
    }

    public function configure() {
        parent::configure();
        $this->widgetSchema->setLabels(array(
            'first_name' => 'Imię',
            'last_name' => 'Nazwisko',
            'email_address' => 'Adres e-mail',
            'username' => 'Login',
            'password' => 'Hasło',
            'password_again' => 'Powtórz hasło'
        ));

        $this->validatorSchema['email_address'] = new sfValidatorEmail();
        $this->validatorSchema['email_address']->setMessage('invalid', 'Podano nieprawidłowy adres e-mail');
        $this->validatorSchema['password']= new sfValidatorString(
                array('min_length' => 8), 
                array('min_length' => 'Hasło powinno zawierać co najmniej 8 znaków')
                );
        
        $this->validatorSchema->setPostValidator(
                new sfValidatorAnd(array(
                    new sfValidatorDoctrineUnique(array('model' => 'sfGuardUser', 'column' => array('email_address')), array('invalid'=> 'Ten e-mail jest już w użyciu')),
                    new sfValidatorDoctrineUnique(array('model' => 'sfGuardUser', 'column' => array('username')), array('invalid'=> 'To konto już istnieje')),
                    new sfValidatorSchemaCompare('password', sfValidatorSchemaCompare::EQUAL, 'password_again', array(), array('invalid' => 'Oba hasła muszą być identyczne')),
                ))
        );
    }

}